package cybercode.carsaleserver.constant;

public enum Status {
    /**
     * 新建
     */
    New(0, "新建"),
    /**
     * 初报成功
     */
    Added(1, "初报成功"),
    /**
     * 修改成功
     */
    Modified(2, "修改成功"),
    /**
     * 删除成功
     */
    Deleted(3, "删除成功"),
    /**
     * 传输成功
     */
    OK(4, "数据上报成功"),
    /**
     * 等待国家返回
     */
    WaitNation(10, "等待国家返回"),
    /**
     * 省平台返回失败
     */
    ProvinceErr(20, "省平台返回失败"),
    /**
     * 国家平台返回失败
     */
    NationErr(21, "国家平台返回失败"),
    /**
     * 未知
     */
    INVALID(-1, "未知");

    final int code;
    final String msg;

    Status(final int code, final String msg) {
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return this.code;
    }

    public String getMsg() {
        return this.msg;
    }

    public static Status getStatus(Integer code) {
        Status[] enums = Status.values();
        for (Status channel : enums) {
            if (channel.getCode() == code) {
                return channel;
            }
        }
        return INVALID;
    }

    public boolean in(Status... stats) {

        for (Status payStat : stats) {
            if (payStat.getCode() == code) {
                return true;
            }
        }

        return false;
    }
}
